package 栈.easy;

import java.util.*;

/**
 * @author Lw中
 * @date 2020/9/30 10:05
 */
public class ErShi {

    /**
     * 有效的括号
     * @param s
     * @return
     */
    public static boolean isValid(String s) {
        // 创建一个用于存储括号的栈
        Stack<Character> stack = new Stack<>();
        // 创建一个set用于存储左括号
        for (Character bracket : s.toCharArray()) {
//            if (bracket.equals('(') || bracket.equals('{') || bracket.equals('[')) {
//                if (bracket.equals('(')) {
//                    stack.push(')');
//                }
//                if (bracket.equals('[')) {
//                    stack.push(']');
//                }
//                if (bracket.equals('{')) {
//                    stack.push('}');
//                }
//            } else {
//                if (stack.isEmpty()) {
//                    return false;
//                } else {
//                    Character pop = stack.pop();
//                    if (pop != bracket) {
//                        return false;
//                    }
//                }
//            }
            if (bracket.equals('(')) {
                stack.push(')');
            }
            else if (bracket.equals('{')) {
                stack.push('}');
            }
            else if (bracket.equals('[')) {
                stack.push(']');
            }
            else if (stack.isEmpty() || bracket != stack.pop()) {
                return false;
            }
        }
        return stack.isEmpty();
    }

    public static void main(String[] args) {
        boolean valid = isValid("{()}]]");
        System.out.println(valid);
    }

}
